home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / Projects / Examples / More Examples / Using performance fields < prev    next >
Lisp/Scheme  |  1998-10-26  |  2KB  |  64 lines

  1. ;;; Basic Example
  2. ; You start defining the density vectors for each dimension, for 
  3. ; example here you use sine waves to build the 3d density space. 
  4. ; You can freely use any generator output here, like brownian noise, 
  5. ; fractals, and others for different dimensions. For more dimensions 
  6. ; than 3 just extend the parameter list. 
  7.  
  8. (setq 3dspace
  9.       (make-density-space 
  10.        (gen-sin 1 1 256)   ;x
  11.        (gen-sin 2 1 256)   ;y
  12.        (gen-sin 3 1 256))) ;z
  13.  
  14. ; Next you fly through this space. In this example you are using a
  15. ; path which x, y and z points each follow sine 0.1, 0.2 and 0.3 waves.
  16. ; Probe is :linear, and just sums the density values. The results are
  17. ; scaled to velocity ranges 55 .. 127.
  18.  
  19. (setq velocity-density
  20.   (vector-round 55 127
  21.      (fly-through 3dspace :linear
  22.               (vector-round 0 255 (gen-sin 0.1 1 256 -45))
  23.               (vector-round 0 255 (gen-sin 0.2 1 256 +45))
  24.               (vector-round 0 255 (gen-sin 0.3 1 256)))))
  25.  
  26. ; Make another fly and scale the densities to symbol range a to z.
  27.  
  28. (setq melody
  29.    (vector-to-symbol a z
  30.        (fly-through 3dspace :linear
  31.               (vector-round 0 255 (gen-sin 2 1 256 -45))
  32.               (vector-round 20 255 (gen-sin 2.2 1 256 +45))
  33.               (vector-round 40 255 (gen-sin 3.3 1 256)))))
  34.  
  35. ; Then make a motive of these values with steady rhythm and let
  36. ; them play in equal-tempered 24 tone octave. Second melody plays
  37. ; all theme components reversed.
  38.  
  39. (def-section sect-a
  40.    default
  41.       zone (* (get-tick '1/16) (length melody))
  42.       tonality (activate-tonality (equal-tempered 48 'c 4 4024))
  43.       motive (def-motive theme
  44.                 length '(1/16)
  45.                 symbol melody
  46.                 velocity (vector-to-list velocity-density))
  47.    piano1 
  48.       channel 1
  49.       motive theme
  50.    piano2 
  51.       channel 2
  52.       motive (rev theme)
  53. )
  54.  
  55. (def-tempo 80)
  56.  
  57. (midiport :printer)
  58.  
  59. (play-file-p "density fly"
  60.    piano1 '(sect-a)
  61.    piano2 '(sect-a)
  62. )
  63.  
  64.